home *** CD-ROM | disk | FTP | other *** search
-
- SMALL MEMORY MINI-HOWTO V0.1
-
- BY: TODD BURGESS
-
- TBURGESS@UOGUELPH.CA
-
- Introduction
-
- The purpose of this mini HOWTO is to describe how to run Linux on a
- system with a small amount of memory. Assuming buying more memory is
- out of the question there are many things you can do to tighten up
- memory usage in Linux.
-
- Many Linux distributions out of the box are quite bloated from a
- memory perspective. They run more services and offer more features
- then most of us will ever need. By removing many of these services you
- can free up several megabytes of real memory.
-
- My own system is a 486DX2-66 with 12MB of physical memory and 12MB of
- swap space. It has run Linux for the last 3 years quite happily and
- hopefully it will run Linux for several more years. :)
-
- Linux Kernel
-
- All the Linux kernels which come with distributions are quite bloated
- and contain more features then any of us will ever need or use. If you
- have not re-compiled your own kernel it is highly recommended that you
- do so. How to re-compile a kernel is beyond the scope of this document
- but many excellent Linux books and guides cover this subject in
- intimate detail.
-
- If you do re-compile your kernel remember to put in no more features
- then you need. For instance: how many of you include PLIP support in
- your kernel? How many of you who include it actually use it? Smaller
- kernels require less time to load, use less memory and use less CPU
- cycles.
-
- Another thing is modules. I personally do not use them because I found
- them to be a cumbersome. If you use them and like them then they can
- help to relieve "kernel bloat."
-
- Virtual Consoles
-
- VCs are a great way to free up memory. Most Linux distributions run
- about 6 of them out of the box. On average running 6 VCs requires
- about 4MB of memory. Removing a couple of them can free up a couple
- MBs of memory.
-
- Most of users can get away running only 3 or 4 VCs. How many you
- choose to remove is a matter personal preference. Just remember that
- the fewer you run the more memory your applications will have to run.
-
- The file which outlines how many VCs get loaded is in the file
- /etc/inittab . In order to remove VCs:
-
- 1. Load /etc/inittab in a text editor
- 2. Look for a line which looks like (the key feature being a line
- which starts with c1):
- c1:12345:respawn:/sbin/getty tty1 38400 linux
- Start at the highest number (ie c6) and comment it out by
- inserting a '#' in the first row. Repeat this step as many times
- as needed. Remember every line you comment out is one less VC
- running.
- 3. Re-boot the system for your changes to take effect.
-
- Daemons
-
- Many Linux distributions run many daemons most of us will never use.
- Most of these daemons are loaded by scripts. Where these scripts are
- and what they are called depends on your Linux distribution. Slackware
- set-up scripts are buried in /etc/rc.d/rc.* .
-
- Before you proceed a knowledge of Unix shell script programming would
- be a definite asset. If however you have no experience writing Unix
- shell scripts what follows is probably the quickest introduction to
- shell script programming ever written.
-
- Take the following shell script
-
-
- #!/bin/sh
- echo "hello world"
- #echo "good bye cruel world"
-
-
-
- The following will echo the string "hello world". Shell scripts must
- contain the the line "#!/bin/sh" at the very top line. After that
- every line is executed as if you had typed it at the keyboard (think
- of shell scripts as nothing more then glorified keyboard macros).
-
- Lines which begin with a '#' are said to be commented out because they
- do not get executed by the shell. Most start up scripts when they load
- daemons look like:
-
-
- if somecondition
- do something
- fi
-
- What you want to do is comment out every line starting with the if
- statement and ending with the fi statement.
-
- If you want to find where a daemon is loaded what you want to do is
- search the start up scripts for the name of the daemon. If I wanted to
- find where inetd is loaded in Slackware I would do the following:
-
-
- 1 cd /etc/rc.d
- 2 grep -n inetd rc.*
-
- inetd
-
- inetd allows people to do things like telnet, ftp and send talk
- requests to your machine. If you never use your system as a server or
- need to access any of its services remotely you can remove inetd.
-
- lpd
-
- lpd is used to print files on your printer using the lpr command. If
- you never print on your Linux box you can remove lpd. If however you
- own a HP Deskjet printer and would like to print I highly recommend
- the package I put together called dj-printcap which is available at:
- ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz
-
- nfsd and mountd
-
- These two daemons are used to run a NFS server. If you never use your
- Linux system as a NFS server you can safely remove these two daemons.
-
- portmap
-
- The portmap daemon is used to handle RPC services. If you do not run a
- NFS server or any other RPC programs you can remove portmap.
-
- sendmail
-
- sendmail is another daemon which requires a fair bit of memory. If you
- never use your Linux box as a relay for sending e-mail or you never
- receive mail on your Linux box you can probably remove sendmail. If
- you do send e-mail from your Linux box most e-mail clients can be
- set-up to send e-mail from another mail server.
-
- others
-
- There may be other daemons your system starts up which you do not
- need. Remove what you feel you have to. Two daemons which you must run
- are syslogd and klogd.
-
- Conclusions
-
- The following illustrates the steps I took to tighten up my memory
- usage on my Linux box. Hopefully I have provided you with some insight
- into what you can do with your Linux box to conserve memory.
-
- Good luck and happy hacking!
- Todd Burgess
- tburgess@uoguelph.ca
- http://eddie.cis.uoguelph.ca/~tburgess
-